Vivado下时序逻辑模块的仿真 |
您所在的位置:网站首页 › vivado rtl文件 › Vivado下时序逻辑模块的仿真 |
文章目录
D触发器两级D触发器带异步复位的D触发器带异步复位和同步置数的D触发器移位寄存器单口RAM伪双口RAM真双口RAM单口ROM
组合逻辑电路在逻辑功能上特点是任意时刻的输出仅仅取决于当前时刻的输入,与电路原来的状态无关。 时序逻辑在逻辑功能上的特点是任意时刻的输出不仅仅取决于当前的输入信号,而且还取决于电路原来的状态。 本文中的例子中模块名都是timing,仿真测试文件中的模块名都是sim_timing。 D触发器D触发器在时钟的上升沿或下降沿存储数据,其输出与时钟跳变之前输入信号的状态相同。 D触发器的设计源代码如下。 module timing(clk,d,q); input clk; input d; output reg q; always@(posedge clk) begin q $random}%100) d = ~d; end end always #10 clk = ~clk; timing uut_timing( .clk(clk), .d(d), .rst(rst), .q(q) ); endmodule带异步复位的D触发器的仿真输出结果如下图所示。 带异步复位D触发器中的复位独立与时钟,同步置数则有别于异步复位,它同步于时钟信号,这里的同步置数可以置1、置0或置高阻状态等,根据电路的需要设定。 需要注意的是,同步操作不能把信号放到敏感列表里,也就是always语句后的括号里。 带异步复位和同步置数的D触发器的设计源代码如下。 module timing(clk,rst,set_num,d,q); input clk; input rst; input set_num; input d; output reg q; always@(posedge clk or negedge rst) begin if(!rst) q |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |